package com.ruoyi.salaryBase.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 员工基本薪资对象 base_salary
 * 
 * @author cxs
 * @date 2025-05-30
 */
public class BaseSalary extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 薪资记录ID，主键 */
    private Long id;

    /** 员工ID，关联员工表 */
    @Excel(name = "员工ID，关联员工表")
    private Long employeeId;

    /** 基本工资 */
    @Excel(name = "基本工资")
    private BigDecimal basicSalary;

    /** 岗位工资 */
    @Excel(name = "岗位工资")
    private BigDecimal positionSalary;

    /** 绩效工资 */
    @Excel(name = "绩效工资")
    private BigDecimal performanceSalary;

    /** 总工资 */
    @Excel(name = "总工资")
    private BigDecimal totalSalary;

    /** 入职日期（冗余存储） */
    @Excel(name = "入职日期", readConverterExp = "冗=余存储")
    private Date hireDate;

    /** 转正日期（冗余存储） */
    @Excel(name = "转正日期", readConverterExp = "冗=余存储")
    private Date conversionDate;

    /** 薪资生效日期 */
    private Date effectiveDate;

    /** 是否当前有效薪资记录 */
    private Integer isCurrent;

    /** 删除标志（0代表存在 2代表删除） */
    private Long delFlag;

    /** 记录创建时间 */
    private Date createdAt;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setEmployeeId(Long employeeId) 
    {
        this.employeeId = employeeId;
    }

    public Long getEmployeeId() 
    {
        return employeeId;
    }

    public void setBasicSalary(BigDecimal basicSalary) 
    {
        this.basicSalary = basicSalary;
    }

    public BigDecimal getBasicSalary() 
    {
        return basicSalary;
    }

    public void setPositionSalary(BigDecimal positionSalary) 
    {
        this.positionSalary = positionSalary;
    }

    public BigDecimal getPositionSalary() 
    {
        return positionSalary;
    }

    public void setPerformanceSalary(BigDecimal performanceSalary) 
    {
        this.performanceSalary = performanceSalary;
    }

    public BigDecimal getPerformanceSalary() 
    {
        return performanceSalary;
    }

    public void setTotalSalary(BigDecimal totalSalary) 
    {
        this.totalSalary = totalSalary;
    }

    public BigDecimal getTotalSalary() 
    {
        return totalSalary;
    }

    public void setHireDate(Date hireDate) 
    {
        this.hireDate = hireDate;
    }

    public Date getHireDate() 
    {
        return hireDate;
    }

    public void setConversionDate(Date conversionDate) 
    {
        this.conversionDate = conversionDate;
    }

    public Date getConversionDate() 
    {
        return conversionDate;
    }

    public void setEffectiveDate(Date effectiveDate) 
    {
        this.effectiveDate = effectiveDate;
    }

    public Date getEffectiveDate() 
    {
        return effectiveDate;
    }

    public void setIsCurrent(Integer isCurrent) 
    {
        this.isCurrent = isCurrent;
    }

    public Integer getIsCurrent() 
    {
        return isCurrent;
    }

    public void setDelFlag(Long delFlag) 
    {
        this.delFlag = delFlag;
    }

    public Long getDelFlag() 
    {
        return delFlag;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("employeeId", getEmployeeId())
            .append("basicSalary", getBasicSalary())
            .append("positionSalary", getPositionSalary())
            .append("performanceSalary", getPerformanceSalary())
            .append("totalSalary", getTotalSalary())
            .append("hireDate", getHireDate())
            .append("conversionDate", getConversionDate())
            .append("effectiveDate", getEffectiveDate())
            .append("isCurrent", getIsCurrent())
            .append("delFlag", getDelFlag())
            .append("createdAt", getCreatedAt())
            .toString();
    }


}
